package h1.sismetro.negocio.funcionario;

import h1.sismetro.classesbasicas.Usuario;
import h1.sismetro.exceptions.AcessoAoBancoException;
import h1.sismetro.exceptions.ConexaoComBancoException;
import h1.sismetro.exceptions.NenhumUsuarioCadastradoException;
import h1.sismetro.exceptions.UsuarioJaCadastradoException;
import h1.sismetro.exceptions.UsuarioNaoEncontradoException;

public interface ICadastroUsuario {
	public void cadastrar(Usuario novoUsuario) throws AcessoAoBancoException, ConexaoComBancoException, UsuarioJaCadastradoException;
	public boolean existe(int login) throws AcessoAoBancoException, ConexaoComBancoException;
	public boolean existe(String matricula)throws AcessoAoBancoException, ConexaoComBancoException;
	public void alterar(Usuario novoUsuario) throws AcessoAoBancoException, ConexaoComBancoException, UsuarioNaoEncontradoException;
	public void excluir(int login) throws AcessoAoBancoException, ConexaoComBancoException, UsuarioNaoEncontradoException;
	public Usuario recuperar(int login) throws AcessoAoBancoException, ConexaoComBancoException, UsuarioNaoEncontradoException;
	public Usuario buscarPorLogon(int login, String senha) throws AcessoAoBancoException, ConexaoComBancoException, NenhumUsuarioCadastradoException;
	
	
}
